package com.develop.data.loan.manager.api;

import com.develop.data.loan.model.LoanContract;
import com.develop.data.loan.model.LoanInstallment;
import org.javatuples.Pair;

import javax.money.MonetaryAmount;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public interface LoanClearManager {

    LoanInstallment previewInstallmently(LoanInstallment installment, LocalDateTime point);

    MonetaryAmount previewAmountInstallmently(LoanInstallment installment, LocalDateTime point);

    MonetaryAmount execute(LoanInstallment installment, LocalDateTime point);

    List<LoanInstallment> preview(LoanContract contract, LocalDateTime point);

    MonetaryAmount previewAmount(LoanContract contract, LocalDateTime point);

    MonetaryAmount execute(LoanContract contract, LocalDateTime point);

}
